In connection-oriented networking schemes such as ATM (Asynchronous Transfer Mode), connections or “calls” must be established between one information device such as a computer system or router and another. This call or connection is sometimes referred to as a “virtual circuit” (VC) particularly where a specified data pipe is artificially, through software, segmented into separate data-pathways, each pathway servicing a particular VC. Often a switch acts as an intermediary to direct one or more of these VCs through a particular network node, and thus these calls are collectively referred to as SVCs (Switched Virtual Circuits).
FIG. 1 shows an exemplary wide-area networking system serviced by ATM. A wide-area network (WAN) link 120 interconnects a first network 100 with a second network 110. Each network has a plurality of nodes that may each contain switching devices that regulate data traffic to one or more user terminals. Network 100 is shown having nodes 102, 103, 104, 106, and 108, while network 110 is shown having nodes 112, 114, 116, and 118. A first user terminal 105 is connected to node 102 of network 100 while a second user terminal 115 is connected to node 118 of network 110. In order for user terminal 105 and user terminal 115 to communicate with one another, a call must first be established between them. This call may be switched through a plurality of nodes. One possible route for sending data from user terminal 105 to user terminal 115 is for data to go from node 102 to node 106 to node 108 and then across the WAN link to node 112 and node 118 finally reaching user terminal 115. Each node has a controller device (SVC controller) and switch which facilitates the calls through its node. The SVC controller has processing, memory and other resources to interpret, forward and process messages and initiate other messages as appropriate, while the switch ordinarily handles the physical routing of messages among nodes and user terminals.
Similar to PSTN (Public Switched Telephone Network) communications such as telephone calls, the period of SVC call operation for a given call can be split into three distinct phases-establishment (setup), active (data transfer), and disconnect (hang-up). Once a call is established, for example, between user terminal 105 and user terminal 115 across a specified path, a virtual circuit will have been created and the call can proceed into the active phase where data is transferred. Once the data transfer is complete, the call can be disconnected, which will release the virtual circuit. State, signaling, and other information for each call that passes through a network node is memorialized in a “call record” stored in the that node whether that node is the source, an intermediary, or destination node. The call record is updated whenever a change in state or activity in the call is indicated. The call record may be used for functions such as billing, tracing, routing, etc.
Ordinarily the creation, storage, updating and retrieval either in whole or part by the SVC controller device within the node. The capacity (number of supportable connections or calls) of the switching device connected to the SVC controller dictates the resources needed for call record handling at the SVC controller. Recently switches such as carrier-class ATM backbone switches have been developed to handle in the hundred thousands to millions of connections, thus forcing SVC controllers to be designed to scale-up accordingly. For instance, if a call record is 1 KiloByte, then 1,000,000 call records would require a controller memory/storage capacity of 1 GigaByte. Such a demand for memory on an SVC leads to increased costs in new SVCs and upgrade difficulty if existing SVCs are used with high-capacity switches.
This expense and difficulty is increased substantially because of an industry standard that demands a service availability of 99.999%. A switching node must have a service outage of no more than 3 minutes per year. To prevent against power failure/system reset, the memory used must be non-volatile (or a redundant controller unit should be hot-standby available) and further, must be protected by a Memory Management Unit (MMU) to prevent wild pointer writes and other memory failures/errors. MMU-protected memory is expensive. If a standby controller is used with a volatile memory, the bandwidth required to transfer call records from the active controller to the standby controller can be prohibitive. In either case, whether using expensive non-volatile memory or using a redundant standby controller, the providing of resources becomes critical to cost and design.